/*
 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_ENUM_H
#define ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_ENUM_H

enum class Format : uint8_t {
    ID16,
    ID32,
    IMM16,
    IMM16_V16,
    IMM32,
    IMM4_V4_V4_V4,
    IMM4_V4_V4_V4_V4_V4,
    IMM64,
    IMM8,
    NONE,
    PREF_ID16_IMM16_IMM16_V8_V8,
    PREF_ID16_IMM16_V8,
    PREF_ID32,
    PREF_ID32_IMM8,
    PREF_ID32_V8,
    PREF_IMM8,
    PREF_IMM16,
    PREF_IMM16_IMM16,
    PREF_IMM16_IMM16_V8,
    PREF_IMM16_V8,
    PREF_IMM16_V8_V8,
    PREF_IMM32,
    PREF_IMM4_IMM4,
    PREF_IMM4_IMM4_V8,
    PREF_IMM8_IMM8,
    PREF_IMM8_IMM8_V8,
    PREF_NONE,
    PREF_V4_V4,
    PREF_V8,
    PREF_V8_IMM32,
    PREF_V8_V8,
    PREF_V8_V8_V8,
    PREF_V8_V8_V8_V8,
    V16_V16,
    V4_IMM4,
    V4_IMM4_ID16,
    V4_V4,
    V4_V4_ID16,
    V4_V4_V4_IMM4_ID16,
    V4_V4_V4_V4_ID16,
    V8,
    V8_ID16,
    V8_ID32,
    V8_IMM16,
    V8_IMM32,
    V8_IMM64,
    V8_IMM8,
    V8_V8,
};

enum class Opcode {
    NOP = 0,
    MOV_V4_V4 = 1,
    MOV_V8_V8 = 2,
    MOV_V16_V16 = 3,
    MOV_64_V4_V4 = 4,
    MOV_64_V16_V16 = 5,
    MOV_OBJ_V4_V4 = 6,
    MOV_OBJ_V8_V8 = 7,
    MOV_OBJ_V16_V16 = 8,
    MOVI_V4_IMM4 = 9,
    MOVI_V8_IMM8 = 10,
    MOVI_V8_IMM16 = 11,
    MOVI_V8_IMM32 = 12,
    MOVI_64_V8_IMM64 = 13,
    FMOVI_64_V8_IMM64 = 14,
    MOV_NULL_V8 = 15,
    LDA_V8 = 16,
    LDA_64_V8 = 17,
    LDA_OBJ_V8 = 18,
    LDAI_IMM8 = 19,
    LDAI_IMM16 = 20,
    LDAI_IMM32 = 21,
    LDAI_64_IMM64 = 22,
    FLDAI_64_IMM64 = 23,
    LDA_STR_ID32 = 24,
    LDA_CONST_V8_ID32 = 25,
    LDA_TYPE_ID16 = 26,
    LDA_NULL = 27,
    STA_V8 = 28,
    STA_64_V8 = 29,
    STA_OBJ_V8 = 30,
    CMP_64_V8 = 31,
    FCMPL_64_V8 = 32,
    FCMPG_64_V8 = 33,
    JMP_IMM8 = 34,
    JMP_IMM16 = 35,
    JMP_IMM32 = 36,
    JEQ_OBJ_V8_IMM8 = 37,
    JEQ_OBJ_V8_IMM16 = 38,
    JNE_OBJ_V8_IMM8 = 39,
    JNE_OBJ_V8_IMM16 = 40,
    JEQZ_OBJ_IMM8 = 41,
    JEQZ_OBJ_IMM16 = 42,
    JNEZ_OBJ_IMM8 = 43,
    JNEZ_OBJ_IMM16 = 44,
    JEQZ_IMM8 = 45,
    JEQZ_IMM16 = 46,
    JNEZ_IMM8 = 47,
    JNEZ_IMM16 = 48,
    JLTZ_IMM8 = 49,
    JLTZ_IMM16 = 50,
    JGTZ_IMM8 = 51,
    JGTZ_IMM16 = 52,
    JLEZ_IMM8 = 53,
    JLEZ_IMM16 = 54,
    JGEZ_IMM8 = 55,
    JGEZ_IMM16 = 56,
    JEQ_V8_IMM8 = 57,
    JEQ_V8_IMM16 = 58,
    JNE_V8_IMM8 = 59,
    JNE_V8_IMM16 = 60,
    JLT_V8_IMM8 = 61,
    JLT_V8_IMM16 = 62,
    JGT_V8_IMM8 = 63,
    JGT_V8_IMM16 = 64,
    JLE_V8_IMM8 = 65,
    JLE_V8_IMM16 = 66,
    JGE_V8_IMM8 = 67,
    JGE_V8_IMM16 = 68,
    FNEG_64 = 69,
    NEG = 70,
    NEG_64 = 71,
    ADD2_V8 = 72,
    ADD2_64_V8 = 73,
    SUB2_V8 = 74,
    SUB2_64_V8 = 75,
    MUL2_V8 = 76,
    MUL2_64_V8 = 77,
    FADD2_64_V8 = 78,
    FSUB2_64_V8 = 79,
    FMUL2_64_V8 = 80,
    FDIV2_64_V8 = 81,
    FMOD2_64_V8 = 82,
    DIV2_V8 = 83,
    DIV2_64_V8 = 84,
    MOD2_V8 = 85,
    MOD2_64_V8 = 86,
    ADDI_IMM8 = 87,
    SUBI_IMM8 = 88,
    MULI_IMM8 = 89,
    ANDI_IMM32 = 90,
    ORI_IMM32 = 91,
    SHLI_IMM8 = 92,
    SHRI_IMM8 = 93,
    ASHRI_IMM8 = 94,
    DIVI_IMM8 = 95,
    MODI_IMM8 = 96,
    ADD_V4_V4 = 97,
    SUB_V4_V4 = 98,
    MUL_V4_V4 = 99,
    DIV_V4_V4 = 100,
    MOD_V4_V4 = 101,
    INCI_V4_IMM4 = 102,
    LDARR_8_V8 = 103,
    LDARRU_8_V8 = 104,
    LDARR_16_V8 = 105,
    LDARRU_16_V8 = 106,
    LDARR_V8 = 107,
    LDARR_64_V8 = 108,
    FLDARR_32_V8 = 109,
    FLDARR_64_V8 = 110,
    LDARR_OBJ_V8 = 111,
    STARR_8_V4_V4 = 112,
    STARR_16_V4_V4 = 113,
    STARR_V4_V4 = 114,
    STARR_64_V4_V4 = 115,
    FSTARR_32_V4_V4 = 116,
    FSTARR_64_V4_V4 = 117,
    STARR_OBJ_V4_V4 = 118,
    LENARR_V8 = 119,
    NEWARR_V4_V4_ID16 = 120,
    NEWOBJ_V8_ID16 = 121,
    INITOBJ_SHORT_V4_V4_ID16 = 122,
    INITOBJ_V4_V4_V4_V4_ID16 = 123,
    INITOBJ_RANGE_V8_ID16 = 124,
    LDOBJ_V8_ID16 = 125,
    LDOBJ_64_V8_ID16 = 126,
    LDOBJ_OBJ_V8_ID16 = 127,
    STOBJ_V8_ID16 = 128,
    STOBJ_64_V8_ID16 = 129,
    STOBJ_OBJ_V8_ID16 = 130,
    LDOBJ_V_V4_V4_ID16 = 131,
    LDOBJ_V_64_V4_V4_ID16 = 132,
    LDOBJ_V_OBJ_V4_V4_ID16 = 133,
    STOBJ_V_V4_V4_ID16 = 134,
    STOBJ_V_64_V4_V4_ID16 = 135,
    STOBJ_V_OBJ_V4_V4_ID16 = 136,
    LDSTATIC_ID16 = 137,
    LDSTATIC_64_ID16 = 138,
    LDSTATIC_OBJ_ID16 = 139,
    STSTATIC_ID16 = 140,
    STSTATIC_64_ID16 = 141,
    STSTATIC_OBJ_ID16 = 142,
    RETURN = 143,
    RETURN_64 = 144,
    RETURN_OBJ = 145,
    RETURN_VOID = 146,
    THROW_V8 = 147,
    CHECKCAST_ID16 = 148,
    ISINSTANCE_ID16 = 149,
    CALL_SHORT_V4_V4_ID16 = 150,
    CALL_V4_V4_V4_V4_ID16 = 151,
    CALL_RANGE_V8_ID16 = 152,
    CALL_ACC_SHORT_V4_IMM4_ID16 = 153,
    CALL_ACC_V4_V4_V4_IMM4_ID16 = 154,
    CALL_VIRT_SHORT_V4_V4_ID16 = 155,
    CALL_VIRT_V4_V4_V4_V4_ID16 = 156,
    CALL_VIRT_RANGE_V8_ID16 = 157,
    CALL_VIRT_ACC_SHORT_V4_IMM4_ID16 = 158,
    CALL_VIRT_ACC_V4_V4_V4_IMM4_ID16 = 159,
    MOV_DYN_V8_V8 = 160,
    MOV_DYN_V16_V16 = 161,
    LDA_DYN_V8 = 162,
    STA_DYN_V8 = 163,
    LDAI_DYN_IMM32 = 164,
    FLDAI_DYN_IMM64 = 165,
    RETURN_DYN = 166,
    CALLI_DYN_SHORT_IMM4_V4_V4_V4 = 167,
    CALLI_DYN_IMM4_V4_V4_V4_V4_V4 = 168,
    CALLI_DYN_RANGE_IMM16_V16 = 169,
    FMOVI_PREF_V8_IMM32 = 236,
    I32TOF64_PREF_NONE = 237,
    UCMP_PREF_V8 = 238,
    NOT_PREF_NONE = 239,
    ECMA_LDNAN_PREF_NONE = 255,
    FLDAI_PREF_IMM32 = 492,
    U32TOF64_PREF_NONE = 493,
    UCMP_64_PREF_V8 = 494,
    NOT_64_PREF_NONE = 495,
    ECMA_LDINFINITY_PREF_NONE = 511,
    FCMPL_PREF_V8 = 748,
    I64TOF64_PREF_NONE = 749,
    DIVU2_PREF_V8 = 750,
    AND2_PREF_V8 = 751,
    ECMA_LDGLOBALTHIS_PREF_NONE = 767,
    FCMPG_PREF_V8 = 1004,
    U64TOF64_PREF_NONE = 1005,
    DIVU2_64_PREF_V8 = 1006,
    AND2_64_PREF_V8 = 1007,
    ECMA_LDUNDEFINED_PREF_NONE = 1023,
    FNEG_PREF_NONE = 1260,
    F64TOI32_PREF_NONE = 1261,
    MODU2_PREF_V8 = 1262,
    OR2_PREF_V8 = 1263,
    ECMA_LDNULL_PREF_NONE = 1279,
    FADD2_PREF_V8 = 1516,
    F64TOI64_PREF_NONE = 1517,
    MODU2_64_PREF_V8 = 1518,
    OR2_64_PREF_V8 = 1519,
    ECMA_LDSYMBOL_PREF_NONE = 1535,
    FSUB2_PREF_V8 = 1772,
    F64TOU32_PREF_NONE = 1773,
    XOR2_PREF_V8 = 1775,
    ECMA_LDGLOBAL_PREF_NONE = 1791,
    FMUL2_PREF_V8 = 2028,
    F64TOU64_PREF_NONE = 2029,
    XOR2_64_PREF_V8 = 2031,
    ECMA_LDTRUE_PREF_NONE = 2047,
    FDIV2_PREF_V8 = 2284,
    I32TOU1_PREF_NONE = 2285,
    SHL2_PREF_V8 = 2287,
    ECMA_LDFALSE_PREF_NONE = 2303,
    FMOD2_PREF_V8 = 2540,
    I64TOU1_PREF_NONE = 2541,
    SHL2_64_PREF_V8 = 2543,
    ECMA_THROWDYN_PREF_NONE = 2559,
    I32TOF32_PREF_NONE = 2796,
    U32TOU1_PREF_NONE = 2797,
    SHR2_PREF_V8 = 2799,
    ECMA_TYPEOFDYN_PREF_NONE = 2815,
    U32TOF32_PREF_NONE = 3052,
    U64TOU1_PREF_NONE = 3053,
    SHR2_64_PREF_V8 = 3055,
    ECMA_LDLEXENVDYN_PREF_NONE = 3071,
    I64TOF32_PREF_NONE = 3308,
    I32TOI64_PREF_NONE = 3309,
    ASHR2_PREF_V8 = 3311,
    ECMA_POPLEXENVDYN_PREF_NONE = 3327,
    U64TOF32_PREF_NONE = 3564,
    I32TOI16_PREF_NONE = 3565,
    ASHR2_64_PREF_V8 = 3567,
    ECMA_GETUNMAPPEDARGS_PREF_NONE = 3583,
    F32TOF64_PREF_NONE = 3820,
    I32TOU16_PREF_NONE = 3821,
    XORI_PREF_IMM32 = 3823,
    ECMA_GETPROPITERATOR_PREF_NONE = 3839,
    F32TOI32_PREF_NONE = 4076,
    I32TOI8_PREF_NONE = 4077,
    AND_PREF_V4_V4 = 4079,
    ECMA_ASYNCFUNCTIONENTER_PREF_NONE = 4095,
    F32TOI64_PREF_NONE = 4332,
    I32TOU8_PREF_NONE = 4333,
    OR_PREF_V4_V4 = 4335,
    ECMA_LDHOLE_PREF_NONE = 4351,
    F32TOU32_PREF_NONE = 4588,
    I64TOI32_PREF_NONE = 4589,
    XOR_PREF_V4_V4 = 4591,
    ECMA_RETURNUNDEFINED_PREF_NONE = 4607,
    F32TOU64_PREF_NONE = 4844,
    U32TOI64_PREF_NONE = 4845,
    SHL_PREF_V4_V4 = 4847,
    ECMA_CREATEEMPTYOBJECT_PREF_NONE = 4863,
    F64TOF32_PREF_NONE = 5100,
    U32TOI16_PREF_NONE = 5101,
    SHR_PREF_V4_V4 = 5103,
    ECMA_CREATEEMPTYARRAY_PREF_NONE = 5119,
    U32TOU16_PREF_NONE = 5357,
    ASHR_PREF_V4_V4 = 5359,
    ECMA_GETITERATOR_PREF_NONE = 5375,
    U32TOI8_PREF_NONE = 5613,
    ECMA_THROWTHROWNOTEXISTS_PREF_NONE = 5631,
    U32TOU8_PREF_NONE = 5869,
    ECMA_THROWPATTERNNONCOERCIBLE_PREF_NONE = 5887,
    U64TOI32_PREF_NONE = 6125,
    ECMA_LDHOMEOBJECT_PREF_NONE = 6143,
    U64TOU32_PREF_NONE = 6381,
    ECMA_THROWDELETESUPERPROPERTY_PREF_NONE = 6399,
    ECMA_DEBUGGER_PREF_NONE = 6655,
    ECMA_ADD2DYN_PREF_V8 = 6911,
    ECMA_SUB2DYN_PREF_V8 = 7167,
    ECMA_MUL2DYN_PREF_V8 = 7423,
    ECMA_DIV2DYN_PREF_V8 = 7679,
    ECMA_MOD2DYN_PREF_V8 = 7935,
    ECMA_EQDYN_PREF_V8 = 8191,
    ECMA_NOTEQDYN_PREF_V8 = 8447,
    ECMA_LESSDYN_PREF_V8 = 8703,
    ECMA_LESSEQDYN_PREF_V8 = 8959,
    ECMA_GREATERDYN_PREF_V8 = 9215,
    ECMA_GREATEREQDYN_PREF_V8 = 9471,
    ECMA_SHL2DYN_PREF_V8 = 9727,
    ECMA_SHR2DYN_PREF_V8 = 9983,
    ECMA_ASHR2DYN_PREF_V8 = 10239,
    ECMA_AND2DYN_PREF_V8 = 10495,
    ECMA_OR2DYN_PREF_V8 = 10751,
    ECMA_XOR2DYN_PREF_V8 = 11007,
    ECMA_TONUMBER_PREF_V8 = 11263,
    ECMA_NEGDYN_PREF_V8 = 11519,
    ECMA_NOTDYN_PREF_V8 = 11775,
    ECMA_INCDYN_PREF_V8 = 12031,
    ECMA_DECDYN_PREF_V8 = 12287,
    ECMA_EXPDYN_PREF_V8 = 12543,
    ECMA_ISINDYN_PREF_V8 = 12799,
    ECMA_INSTANCEOFDYN_PREF_V8 = 13055,
    ECMA_STRICTNOTEQDYN_PREF_V8 = 13311,
    ECMA_STRICTEQDYN_PREF_V8 = 13567,
    ECMA_RESUMEGENERATOR_PREF_V8 = 13823,
    ECMA_GETRESUMEMODE_PREF_V8 = 14079,
    ECMA_CREATEGENERATOROBJ_PREF_V8 = 14335,
    ECMA_THROWCONSTASSIGNMENT_PREF_V8 = 14591,
    ECMA_GETTEMPLATEOBJECT_PREF_V8 = 14847,
    ECMA_GETNEXTPROPNAME_PREF_V8 = 15103,
    ECMA_CALLARG0DYN_PREF_V8 = 15359,
    ECMA_THROWIFNOTOBJECT_PREF_V8 = 15615,
    ECMA_ITERNEXT_PREF_V8 = 15871,
    ECMA_CLOSEITERATOR_PREF_V8 = 16127,
    ECMA_COPYMODULE_PREF_V8 = 16383,
    ECMA_SUPERCALLSPREAD_PREF_V8 = 16639,
    ECMA_DELOBJPROP_PREF_V8_V8 = 16895,
    ECMA_NEWOBJSPREADDYN_PREF_V8_V8 = 17151,
    ECMA_CREATEITERRESULTOBJ_PREF_V8_V8 = 17407,
    ECMA_SUSPENDGENERATOR_PREF_V8_V8 = 17663,
    ECMA_ASYNCFUNCTIONAWAITUNCAUGHT_PREF_V8_V8 = 17919,
    ECMA_THROWUNDEFINEDIFHOLE_PREF_V8_V8 = 18175,
    ECMA_CALLARG1DYN_PREF_V8_V8 = 18431,
    ECMA_COPYDATAPROPERTIES_PREF_V8_V8 = 18687,
    ECMA_STARRAYSPREAD_PREF_V8_V8 = 18943,
    ECMA_GETITERATORNEXT_PREF_V8_V8 = 19199,
    ECMA_SETOBJECTWITHPROTO_PREF_V8_V8 = 19455,
    ECMA_LDOBJBYVALUE_PREF_V8_V8 = 19711,
    ECMA_STOBJBYVALUE_PREF_V8_V8 = 19967,
    ECMA_STOWNBYVALUE_PREF_V8_V8 = 20223,
    ECMA_LDSUPERBYVALUE_PREF_V8_V8 = 20479,
    ECMA_STSUPERBYVALUE_PREF_V8_V8 = 20735,
    ECMA_LDOBJBYINDEX_PREF_V8_IMM32 = 20991,
    ECMA_STOBJBYINDEX_PREF_V8_IMM32 = 21247,
    ECMA_STOWNBYINDEX_PREF_V8_IMM32 = 21503,
    ECMA_CALLSPREADDYN_PREF_V8_V8_V8 = 21759,
    ECMA_ASYNCFUNCTIONRESOLVE_PREF_V8_V8_V8 = 22015,
    ECMA_ASYNCFUNCTIONREJECT_PREF_V8_V8_V8 = 22271,
    ECMA_CALLARGS2DYN_PREF_V8_V8_V8 = 22527,
    ECMA_CALLARGS3DYN_PREF_V8_V8_V8_V8 = 22783,
    ECMA_DEFINEGETTERSETTERBYVALUE_PREF_V8_V8_V8_V8 = 23039,
    ECMA_NEWOBJDYNRANGE_PREF_IMM16_V8 = 23295,
    ECMA_CALLRANGEDYN_PREF_IMM16_V8 = 23551,
    ECMA_CALLTHISRANGEDYN_PREF_IMM16_V8 = 23807,
    ECMA_SUPERCALL_PREF_IMM16_V8 = 24063,
    ECMA_CREATEOBJECTWITHEXCLUDEDKEYS_PREF_IMM16_V8_V8 = 24319,
    ECMA_DEFINEFUNCDYN_PREF_ID16_IMM16_V8 = 24575,
    ECMA_DEFINENCFUNCDYN_PREF_ID16_IMM16_V8 = 24831,
    ECMA_DEFINEGENERATORFUNC_PREF_ID16_IMM16_V8 = 25087,
    ECMA_DEFINEASYNCFUNC_PREF_ID16_IMM16_V8 = 25343,
    ECMA_DEFINEMETHOD_PREF_ID16_IMM16_V8 = 25599,
    ECMA_NEWLEXENVDYN_PREF_IMM16 = 25855,
    ECMA_COPYRESTARGS_PREF_IMM16 = 26111,
    ECMA_CREATEARRAYWITHBUFFER_PREF_IMM16 = 26367,
    ECMA_CREATEOBJECTHAVINGMETHOD_PREF_IMM16 = 26623,
    ECMA_THROWIFSUPERNOTCORRECTCALL_PREF_IMM16 = 26879,
    ECMA_CREATEOBJECTWITHBUFFER_PREF_IMM16 = 27135,
    ECMA_LDLEXVARDYN_PREF_IMM4_IMM4 = 27391,
    ECMA_LDLEXVARDYN_PREF_IMM8_IMM8 = 27647,
    ECMA_LDLEXVARDYN_PREF_IMM16_IMM16 = 27903,
    ECMA_STLEXVARDYN_PREF_IMM4_IMM4_V8 = 28159,
    ECMA_STLEXVARDYN_PREF_IMM8_IMM8_V8 = 28415,
    ECMA_STLEXVARDYN_PREF_IMM16_IMM16_V8 = 28671,
    ECMA_DEFINECLASSWITHBUFFER_PREF_ID16_IMM16_IMM16_V8_V8 = 28927,
    ECMA_GETMODULENAMESPACE_PREF_ID32 = 29183,
    ECMA_STMODULEVAR_PREF_ID32 = 29439,
    ECMA_TRYLDGLOBALBYNAME_PREF_ID32 = 29695,
    ECMA_TRYSTGLOBALBYNAME_PREF_ID32 = 29951,
    ECMA_LDGLOBALVAR_PREF_ID32 = 30207,
    ECMA_STGLOBALVAR_PREF_ID32 = 30463,
    ECMA_LDOBJBYNAME_PREF_ID32_V8 = 30719,
    ECMA_STOBJBYNAME_PREF_ID32_V8 = 30975,
    ECMA_STOWNBYNAME_PREF_ID32_V8 = 31231,
    ECMA_LDSUPERBYNAME_PREF_ID32_V8 = 31487,
    ECMA_STSUPERBYNAME_PREF_ID32_V8 = 31743,
    ECMA_LDMODULEVAR_PREF_ID32_IMM8 = 31999,
    ECMA_CREATEREGEXPWITHLITERAL_PREF_ID32_IMM8 = 32255,
    ECMA_ISTRUE_PREF_NONE = 32511,
    ECMA_ISFALSE_PREF_NONE = 32767,
    ECMA_STCONSTTOGLOBALRECORD_PREF_ID32 = 33023,
    ECMA_STLETTOGLOBALRECORD_PREF_ID32 = 33279,
    ECMA_STCLASSTOGLOBALRECORD_PREF_ID32 = 33535,
    ECMA_STOWNBYVALUEWITHNAMESET_PREF_V8_V8 = 33791,
    ECMA_STOWNBYNAMEWITHNAMESET_PREF_ID32_V8 = 34047,
    ECMA_LDFUNCTION_PREF_NONE = 34303,
    ECMA_NEWLEXENVWITHNAMEDYN_PREF_IMM16_IMM16 = 34559,
    ECMA_LDBIGINT_PREF_ID32 = 34815,
    ECMA_TONUMERIC_PREF_V8 = 35071,
    ECMA_CREATEASYNCGENERATOROBJ_PREF_V8 = 35327,
    ECMA_ASYNCGENERATORRESOLVE_PREF_V8_V8_V8 = 35583,
    ECMA_DEFINEASYNCGENERATORFUNC_PREF_ID16_IMM16_V8 = 35839,
    ECMA_DYNAMICIMPORT_PREF_V8 = 36095,
    ECMA_LDPATCHVAR_PREF_IMM16 = 36351,
    ECMA_STPATCHVAR_PREF_IMM16 = 36607,
    ECMA_ASYNCGENERATORREJECT_PREF_V8_V8 = 36863,
    LAST = ECMA_ASYNCGENERATORREJECT_PREF_V8_V8
};

enum Flags : uint32_t {
    TYPE_ID = 0x1,
    METHOD_ID = 0x2,
    STRING_ID = 0x4,
    LITERALARRAY_ID = 0x8,
    FIELD_ID = 0x10,
    CALL = 0x20,
    CALL_VIRT = 0x40,
    RETURN = 0x80,
    SUSPEND = 0x100,
    JUMP = 0x200,
    CONDITIONAL = 0x400,
    FLOAT = 0x800,
    DYNAMIC = 0x1000,
    MAYBE_DYNAMIC = 0x2000,
    LANGUAGE_TYPE = 0x4000,
    INITIALIZE_TYPE = 0x8000,
    ACC_NONE = 0x10000,
    ACC_READ = 0x20000,
    ACC_WRITE = 0x40000,
};

#endif  // ECMASCRIPT_JSPANDAFILE_BYTECODE_INST_OLD_INSTRUCTION_ENUM_H
